From 1945-1998, the number of nuclear bomb tests drastically increased over time.
From 1945-1998, the number of nuclear bomb tests drastically increased over time.
---
title: "Storyboard"
output:
flexdashboard::flex_dashboard:
storyboard: true
social: menu
source: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(htmlwidgets)
library(leaflet)
library(leaflegend)
library(purrr)
library(viridis)
library(vistime)
library(ggplot2)
library(ggthemes)
library(ggpubr)
library(plotly)
explosions <- read_csv("data/nuclear_explosions.csv")
```
### Frame 1
```{r}
# Owen's graph
# Github link: https://github.com/rfordatascience/tidytuesday/tree/master/data/2019/2019-08-20
avg <- function(x, y) {
num <- (x + y) / 2
}
# Data tidying
explosions2 <- explosions %>%
# Rename 'purpose' as indicated in data README
mutate(map_purpose = if_else(purpose == "COMBAT",
"WWII bombs dropped over Japan", purpose),
map_purpose = if_else(purpose == "FMS",
"Soviet test studying phenomenon of nuclear explosion", purpose),
map_purpose = if_else(purpose == "ME",
"Military Exercise", purpose),
map_purpose = if_else(purpose == "PNE",
"Peaceful nuclear explosion", purpose),
map_purpose = if_else(purpose == "SAM",
"Soviet accident test", purpose),
map_purpose = if_else(purpose == "TRANSP",
"Transportation-storage purpose", purpose),
map_purpose = if_else(purpose == "WE",
"Evaluate effects of nuclear detonation on various targets", purpose),
map_purpose = if_else(purpose == "WR",
"Weapons development program", purpose)) %>%
mutate(average = map2_dbl(.x = yield_lower, .y = yield_upper,
~ avg(.x, .y))) %>%
mutate(scaled_average = average / 1000) %>%
mutate(plot_scaled_average = ifelse(scaled_average < 1, 1, scaled_average)) %>%
mutate(popup_info = paste0("<b>Estimated yield (Mt TNT): </b>", scaled_average, "<br/>",
"<b>Purpose: </b>", map_purpose, "<br/>",
"<b>Country: </b>", country, "<br/>",
"<b>Region: </b>", region, "<br/>",
"<b>Year: </b>", year, "<br/>"))
# Create a palette for explosion sizes
pal <- colorNumeric(palette = 'viridis',
domain = explosions2$plot_scaled_average,
na.color = NA)
# To do:
# Fix popups
# Fix title
# Fix scale so that values < 1 will still show up as 1
leaflet() %>%
addTiles() %>%
addProviderTiles("Thunderforest.Landscape") %>%
addCircleMarkers(data = explosions2, lat = ~ latitude, lng = ~ longitude,
radius = ~ plot_scaled_average,
popup = ~ popup_info,
stroke = FALSE, fillOpacity = 0.5,
color = ~ pal(plot_scaled_average)) %>%
addLegend(data = explosions2,
pal = pal,
values = ~ plot_scaled_average,
title = "Worldwide nuclear explosions <br/> Megatonnes of TNT")
```
### Nuclear Explosions Per Country
```{r, echo=FALSE, fig.width=6.5, fig.height=7.5, vertical_layout: scroll}
major_events <- read.csv("data/Major Events.csv")
#Generate Separate Datasets by Periods
explosion_event <- major_events %>%
full_join(explosions, by = "year")
explosions_1945_1954 <- explosion_event %>%
filter(year <= 1954) %>%
filter(!is.na(region))
region_1945_1954 <- explosions_1945_1954 %>%
group_by(region) %>%
summarize(count = n())%>%
right_join(explosions_1945_1954, by = 'region')
explosions_1953_1959 <- explosion_event %>%
filter(year >= 1953 & year <= 1959) %>%
filter(!is.na(region))
region_1953_1959 <- explosions_1953_1959 %>%
group_by(region) %>%
summarize(count = n()) %>%
right_join(explosions_1953_1959, by = 'region')
explosions_1955_1975 <- explosion_event %>%
filter(year >= 1955 & year <= 1975) %>%
filter(!is.na(region))
region_1955_1975 <- explosions_1955_1975 %>%
group_by(region) %>%
summarize(count = n())%>%
right_join(explosions_1955_1975, by = 'region')
explosions_1979_1989 <- explosion_event %>%
filter(year >= 1979 & year <= 1989) %>%
filter(!is.na(region))
region_1979_1989 <- explosions_1979_1989 %>%
group_by(region) %>%
summarize(count = n())%>%
right_join(explosions_1979_1989, by = 'region')
#plot looking at trend of each country from 1945 to 1998
counts_by_year <- explosion_event %>%
filter(!is.na(region)) %>%
group_by(year, country) %>%
summarize(n = n()) %>%
mutate(year = as.numeric(year)) %>%
mutate(country = recode(country, CHINA = "China", FRANCE = "France", INDIA = "India", PAKIST = "Pakistan"))
PAK_events <- counts_by_year %>%
filter(country == "Pakistan")
nukes_by_year <- ggplot(data=counts_by_year, aes (x = year, y = n, color = country)) +
geom_line(linewidth = 1) +
geom_point(data = PAK_events, color="orange") +
theme_bw() +
labs(y = "Number of Nuclear Explosion Events",x = "Year") +
scale_x_continuous(breaks = seq(1945, 2000, 5), limits = c(1945, 1998)) +
scale_color_manual(breaks = c("China", "France", "India", "Pakistan", "UK", "USA", "USSR"), values = c("hotpink3", "blue", "green3", "orange", "steelblue", "black", "red3")) +
theme(panel.background = element_blank(),,panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),plot.background = element_blank()) +
theme(legend.position = "top", legend.title = element_blank()) +
guides(colour = guide_legend(nrow = 1))
timeline <- data.frame(Position = rep(c("", "", "", "", "", "", "", "", ""), each = 1),
Name = c("World War II", "Chinese Civil War", "First IndoChina War", "Korean War", "Cuban Revolution", "Vietnam War", "Lebanese Civil War", "Soviet-Afghan War", "Iran-Iraq War"),
start = c("1945-01-01", "1945-01-01", "1946-01-01", "1951-01-01", "1953-01-01", "1955-01-01", "1975-01-01", "1979-01-01", "1980-01-01" ),
end = c("1945-12-31", "1949-12-31", "1954-12-31", "1954-12-31", "1959-12-31", "1975-12-31", "1990-12-31", "1989-12-31", "1988-12-31"),
color = c("lightgrey", "azure2", "skyblue", "skyblue2", "steelblue","steelblue4", "blue", "blue3", "navy"))
wars<- gg_vistime(timeline, col.event = "Position", col.group = "Name") +
scale_x_datetime(date_breaks = "5 years", date_labels = "%Y", limits = as.POSIXct(c("1945-01-01", "2000-01-01"))) +
theme_tufte() +
theme(axis.text.x = element_blank(), axis.ticks.x = element_blank()) +
theme()
Explosions_Per_Year <- ggarrange(nukes_by_year, wars, nrow = 2, heights = c(3, 1.5), align = 'v')
ggplotly(Explosions_Per_Year)
```
***
From 1945-1998, the number of nuclear bomb tests drastically increased over time.
### Explosions Per Period
```{r}
pal1<- leaflet::colorNumeric("viridis", domain = region_1945_1954$count)
pal2<- leaflet::colorNumeric("viridis", domain = region_1953_1959$count)
pal3<- leaflet::colorNumeric("viridis", domain = region_1955_1975$count)
pal4<- leaflet::colorNumeric("viridis", domain = region_1979_1989$count)
#graph with leaflet to generate layers by period
leaflet() %>%
addTiles() %>%
addCircleMarkers(data = region_1945_1954, ~longitude, ~latitude , radius = 3, color = ~pal1(count), fillOpacity = 0.7,group = "1945-1954")%>%
addLegend(data = region_1945_1954,
position = "bottomright",
pal = pal1, values = ~count,
title = "# of Events",
opacity = 1, group="1945-1954") %>%
addCircleMarkers(data = region_1953_1959, ~longitude, ~latitude , radius = 3, color = ~pal2(count), fillOpacity = 0.7,group = "1953-1959")%>%
addLegend(data = region_1953_1959,
position = "bottomright",
pal = pal2, values = ~count,
title = "# of Events",
opacity = 1, group="1953-1959") %>%
addCircleMarkers(data = region_1955_1975, ~longitude, ~latitude , radius = 3, color = ~pal3(count), fillOpacity = 0.7,group = "1955-1975")%>%
addLegend(data = region_1955_1975,
position = "bottomright",
pal = pal3, values = ~count,
title = "# of Events",
opacity = 1, group = "1955-1975") %>%
addCircleMarkers(data = region_1979_1989, ~longitude, ~latitude , radius = 3, color = ~pal4(count), fillOpacity = 0.7,group = "1979-1989")%>%
addLegend(data = region_1979_1989,
position = "bottomright",
pal = pal4, values = ~count,
title = "# of Events",
opacity = 1, group = "1979-1989") %>%
addLayersControl(overlayGroups = c("1945-1954", "1953-1959", "1955-1975", "1979-1989"), position = "topright", options = layersControlOptions(collapsed = F)) %>%
hideGroup(c("1953-1959", "1955-1975", "1979-1989"))
```
***
From 1945-1998, the number of nuclear bomb tests drastically increased over time.